package main

import (
    "github.com/astaxie/beego/config"
    "fmt"
    "os"
)

func main() {
    conf, err := config.NewConfig("ini", "test.conf")  // 配置文件格式和文件路径
    if err != nil {
        fmt.Fprintf(os.Stderr, "New Confit ERROR: %v\n", err)
        return
    }
    server, err := conf.GetSection("server")  // 可以获取到所有的参数，返回map
    if err != nil {
        fmt.Fprintf(os.Stderr, "get section ERROR: %v\n", err)
    }
    fmt.Println(server)
    df, err := conf.GetSection("default")  // default里的以及最外层的参数都会解析存到这个map里
    if err != nil {
        fmt.Fprintf(os.Stderr, "get section ERROR: %v\n", err)
    }
    fmt.Println(df)

    key1a, key1b := conf.String("key1"), conf.String("default::key1")  //  前面是否加上 default:： 都是一样的
    key2 := conf.String("key2")
    fmt.Println(key1a, key1b, key2)
    // 解析获取默认值可能就是这么做的吧，网上没有找到相关的示例
    k1 := conf.DefaultString("server::key1", conf.String("key1"))
    k2 := conf.DefaultString("server::key2", conf.String("key2"))
    fmt.Println(k1, k2)
}